#include "lm75a.h"
#include <stdio.h>  // printf 用于调试输出
#include "t_i2c_m.h"  // 你的I2C驱动
#include "t_i2c_m_interface.h"
// --------- 示例用到的全局变量 ---------
static lm75a_t g_lm75a;
static t_i2c_t *g_i2c = NULL;
extern t_i2c_gpio_t gpio_iic;
// --------- 初始化函数 ---------
void lm75a_app_init(void)
{
    // 创建I2C句柄
	g_i2c=t_i2c_create(
	          "iic",
             i2c_gpio_cfgout,
             i2c_gpio_cfgin,
             i2c_gpio_t_delay,
			       i2c_gpio_write,
			       i2c_gpio_read,
		         &gpio_iic);

    // 初始化LM75A，地址默认0x48
	  float temph=0,templ=0;
    lm75a_init(&g_lm75a, g_i2c, 0x48);
    lm75a_get_thyst(&g_lm75a, &temph);
	  lm75a_get_tos(&g_lm75a, &templ);
    // 可选：设置高温阈值 = 60°C，低温阈值 = 20°C
    lm75a_set_tos(&g_lm75a, 80.0f);
    lm75a_set_thyst(&g_lm75a, 20.0f);
	  lm75a_get_thyst(&g_lm75a, &temph);
	  lm75a_get_tos(&g_lm75a, &templ);

    // 可选：设置配置寄存器 (关机模式、故障队列等)
    lm75a_write_config(&g_lm75a, 0x00);  // 默认工作模式
}

// --------- 温度读取任务（可在FreeRTOS中定时执行） ---------
float temp_c = 0.000f;
void lm75a_app_task(void)
{
    
    if (lm75a_read_temp_0P125(&g_lm75a, &temp_c) == 0) {
        printf("[LM75A] Temp: %.3f c\r\n", temp_c);
    } else {
        printf("[LM75A] Read failed\r\n");
    }
}
